package com.qf.sl.youshare;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Window;
import com.qf.sl.youshare.model.Category;
import com.qf.sl.youshare.tasks.CategoryTask;
import com.qf.sl.youshare.tasks.TaskProcessor;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;

/**
 * Created by IDEA
 * User : sl
 * on 2015/2/4.
 * 10:06
 */

/**
 * 启动页面,加载itemcats.php页面的JSON数据,进入下一个页面,可能是教程页,也可能是主页面
 */
public class SplashActivity
        extends FragmentActivity
        implements TaskProcessor {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //1,通过代码方式去掉标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_splash);

        //这个地方进行数据的加载
        // 1,记载数据商城的加载
        CategoryTask  task = new CategoryTask(this);
        task.execute();
    }

    private void showNext() {
        //通过 SharedPreference 进行是否显示过教程的判断

        SharedPreferences sp = getSharedPreferences(Constants.SP_APP_DATA,MODE_PRIVATE);

        //是否显示过教程
        boolean shownTutorial = sp.getBoolean(Constants.SP_KEY_TUTORIAL_SHOWN, false);

        if (shownTutorial) {
            //显示过教程,直接显示主页面

            startActivity(new Intent(this, MainActivity.class));
        } else {
            //没有显示过教程,启动教程页
            startActivity(new Intent(this, TutorialActivity.class));
        }

        finish();
    }

    @Override
    public void processResult(JSONObject jsonObject) {
        //TODO 保存数据到一个公共的区域, 然后启动下一个界面

        if (jsonObject != null) {

            try {
                int code = jsonObject.getInt("code");
                if (code == 1){
                    //代表成功
                    JSONObject msg = jsonObject.getJSONObject("msg");

                    JSONArray names = msg.names();

                    //存储分类的信息, 通过分类ID 引用到实际的分类上
                    //只是保存最上层分类,子分类都是通过内部 subCategories 来进行

                    HashMap<String, Category> categories = new HashMap<String, Category>();

                    DataStorage dataStorage = DataStorage.getInstance();

                    //如果JSON中有内容, 那么解析
                    if (names != null) {
                        int length = names.length();
                        for (int i = 0; i < length; i++) {
                            String string = names.getString(i);

                            //获取每一个分类的对象, 进行解析
                            JSONObject object = msg.getJSONObject(string);

                            Category category = new Category();
                            category.parseJSON(object);

                            dataStorage.addCategories(category);
                        }

                        System.out.println("YOuShare Categories : " + categories);
                    }

                }else {
                    //TODO 显示错误信息

                    JSONObject msp = jsonObject.getJSONObject("msp");
                    System.out.println("msp = " + msp);

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

//            try {
//                JSONObject msg = jsonObject.getJSONObject("msg");
//
//                JSONObject jsonObject1 = msg.getJSONObject("1");
//                String name1 = jsonObject1.getString("name");
//
//                JSONObject jsonObject2 = msg.getJSONObject("2");
//                String name2 = jsonObject2.getString("name");
//
//                ItemCat itemCat = ItemCat.getInstance();
//                itemCat.setName1(name1);
//                itemCat.setName2(name2);
//
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }

//            ProductSingleCase singleCase = ProductSingleCase.getInstance();
//
//            singleCase.setItemCatsJSON(jsonObject);
//
//            try {
//                JSONObject msg = jsonObject.getJSONObject("msg");
//                Iterator keys = msg.keys();
//                while (keys.hasNext()){
//                    JSONObject itemJson = (JSONObject) keys.next();
//                }
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }

//            System.out.println("jsonObject = " + jsonObject);
        }

        showNext();
    }
}